<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>函数</title>
</head>
<body>
    
<!-- 
    1.什么是函数？
        - 实现特定功能的 n 条语句的封装体
        - 只有函数是可以执行的，其他类型的数据不能执行
    2.为什么要用函数？
        - 提高代码复用
        - 便于阅读交流
    3.如何定义函数？
        - 函数声明
        - 表达式
    4.如何调用（执行）函数？
        - test()： 直接调用
        - obj.test()： 通过对象调用
        - new test(): new 调用
        - test.call/apply(obj) = obj.test() ：临时让test 成为obj的方法进行调用
 -->

<script type="text/javascript">
    /*
        编写程序实现以下功能需求：
            1.根据年龄输出对应信息
            2.如果小于 18，输出：未成年，再等等！
            3.如果大于 60，输出：算了吧！
            4.其他，输出：刚刚好！
    */

    
    // var pro = prompt('请输入您的年龄')
    // function shenhe(age){
    //     if(age == NaN || age == undefined || age == null){
    //         alert("输入有误");
    //     }else{
    //         if(age>60){
    //             alert("你还是算了吧")
    //         }else if(age<18){
    //             alert("再等等把")
    //         }else{
    //             alert('你来的正是时候')
    //     }
    //     }
        
    // }
    // shenhe(pro)

    // function fn1(){  // 函数声明
    //     console.log("fn1 函数声明")
    // }

    // fn2 = function(){  // 表达式
    //     console.log("fn2 表达式")
    // }


    var obj = {
        xxx :'123456'
    }

    function test2(){
        console.log (this.xxx)
        
    }

    // obj.test2()  不能直接调用，根本就没有
    test2.call(obj) // obj.test2() // 可以让一个函数成为指定任意对象的方法进行调用
    // console.log(obj.xxx)

</script>
</body>
</html>